The present invention relates generally to computer software and relates more specifically to patching computer systems and applications executing in virtualized environments.
A patch is a piece of software designed to fix problems with, or update, a computer program or its supporting data. Computer systems and applications need to be frequently patched and upgraded to fix security vulnerabilities and other bugs, and improve the usability or performance. However, patching and post-patch testing is time consuming, and may even lead to unpredictable failures, which results in significant service downtime.
Downtime is a significant drawback for services that demand high availability. For instance, to achieve an availability of higher than 99.9%, a service can be down for no more than approximately two hours every three months. To achieve an availability of 99.99%, that window of permissible downtime shrinks to no more than thirteen minutes every three months.